package com.xiaoshuidi.cloud.module.system.service.apartment;

import cn.hutool.core.collection.CollUtil;
import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.framework.common.util.collection.CollectionUtils;
import com.xiaoshuidi.cloud.module.system.api.apartment.dto.TaxRateConfigDTO;
import com.xiaoshuidi.cloud.module.system.api.dept.dto.DeptLeaderRespDTO;
import com.xiaoshuidi.cloud.module.system.controller.admin.apartment.vo.ApartmentListReqVO;
import com.xiaoshuidi.cloud.module.system.controller.admin.apartment.vo.ApartmentRespVO;
import com.xiaoshuidi.cloud.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
import com.xiaoshuidi.cloud.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
import com.xiaoshuidi.cloud.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
import com.xiaoshuidi.cloud.module.system.dal.dataobject.apartment.ApartmentDO;
import com.xiaoshuidi.cloud.module.system.dal.dataobject.dept.DeptDO;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * 门店管理 Service 接口
 *
 * @author
 */
public interface ApartmentService {

    List<TaxRateConfigDTO> getConfigFeesList(Long apartmentId);

    /**
     * 创建门店管理
     *
     * @param apartmentId 门店id
     * @param apartmentName 门店名称
     * @return 门店编号
     */
    Long createApartment(Long apartmentId,String apartmentName);

    /**
     * 筛选门店列表
     *
     * @param reqVO 筛选条件请求 VO
     * @return 部门列表
     */
    PageResult<ApartmentRespVO> getApartmentList(ApartmentListReqVO reqVO);

    /**
     * 修改门店对应配置（第一次创建配置时调用即可）
     *
     * @param apartmentId 门店id
     * @param apartmentManageEnumCode 配置编号
     * @return 门店编号
     */
    Boolean updateApartment(Long apartmentId, Integer apartmentManageEnumCode);

    /**
     * 初始化门店管理列表
     */
    void initialization();

    /**
     * 更新门店配置名称
     * @param apartmentId
     * @param name
     */
    void updateApartmentName(Long apartmentId, String name);

}
